<!--
 *   Licensed to the Apache Software Foundation (ASF) under one
 *   or more contributor license agreements.  See the NOTICE file
 *   distributed with this work for additional information
 *   regarding copyright ownership.  The ASF licenses this file
 *   to you under the Apache License, Version 2.0 (the
 *   "License"); you may not use this file except in compliance
 *   with the License.  You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing,
 *   software distributed under the License is distributed on an
 *   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 *   KIND, either express or implied.  See the License for the
 *   specific language governing permissions and limitations
 *   under the License.
 *
-->
<html>
<head>
    <title>Package Documentation for org.apache.directory.fortress.core.impl</title>
</head>
<body>
<p>
    This package contains the fortress implementation classes for data persistence with the LDAP server.
    This package contain the classes that are the three layers of processing of fortress:
    (1) Manager layer - e.g. AdminMgrImpl, AccessMgrImpl, ReviewMgrImpl
    (2) Process layer - e.g. UserP, RoleP, PermP
    (3) DAO layer - e.g. UserDAO, RoleDAO, PermDAO
</p>

<p>
<ol>
    <li>This package provides apis that adhere to standards like <a
            href="http://csrc.nist.gov/groups/SNS/rbac/documents/draft-rbac-implementation-std-v01.pdf">RBAC</a></li>
    <li>This package provides apis that adhere to <a
            href="http://profsandhu.com/journals/tissec/p113-oh.pdf">ARBAC02</a> model to provide delegated
        administration capabilities.
    </li>
    <li>This package provides apis to interrogate <a href="http://openldap.org/">OpenLDAP</a>'s slapd access log to
        obtain fortress audit trail and historical events.
    </li>
    <li>This package provides CRUD apis for storing config data on the ldap server.</li>
    <li>This package contains apis to perform create and teardown the ldap group node.</li>
    <li>This package uses <a href="http://www.jgrapht.org/">JGraphT</a> to provide hierarchical functionality that is
        reused within several other packages in the fortress system.
    </li>
</ol>
</p>
<p>
    The <b>org.apache.directory.fortress.core.impl</b> package data entities may be manipulated by outside
    programs but the apis contained within this package are for internal use only.
    The entities include {@link org.apache.directory.fortress.core.model.User User},{@link
    org.apache.directory.fortress.core.model.Role Role}, {@link org.apache.directory.fortress.core.model.PermObj
    PermObj}, {@link org.apache.directory.fortress.core.model.Permission Permission}, and more.
    See the corresponding javadoc contained with this package for more info.
</p>

<h3>Fortress Manager APIs implemented in this package</h3>
<ol>
    <li><a href="AccessMgrImpl.html">AccessMgrImpl</a> - This implements using LDAP the runtime access control
        operations on objects that are provisioned <a
                href="http://csrc.nist.gov/groups/SNS/rbac/documents/draft-rbac-implementation-std-v01.pdf">RBAC</a>
        entities that reside in LDAP directory.
    </li>
    <li><a href="AdminMgrImpl.html">AdminMgrImpl</a> - This implements using LDAP the administrative functions to
        provision Fortress <a
                href="http://csrc.nist.gov/groups/SNS/rbac/documents/draft-rbac-implementation-std-v01.pdf">RBAC</a>
        entities into the LDAP directory.
    </li>
    <li><a href="ReviewMgrImpl.html">ReviewMgrImpl</a> - This implements using LDAP the administrative review functions
        on already provisioned Fortress <a
                href="http://csrc.nist.gov/groups/SNS/rbac/documents/draft-rbac-implementation-std-v01.pdf">RBAC</a>
        entities that reside in LDAP directory.
    </li>
    <li><a href="DelegatedAccessMgrImpl.html">DelegatedAccessMgrImpl</a> - This implements using LDAP the APIs for
        performing runtime delegated access control operations on objects that are provisioned Fortress <a
                href="http://profsandhu.com/journals/tissec/p113-oh.pdf">ARBAC02</a> entities that reside in LDAP
        directory.
    </li>
    <li><a href="DelegatedAdminMgrImpl.html">DelegatedAdminMgrImpl</a> - This implements using LDAP the <a
            href="http://profsandhu.com/journals/tissec/p113-oh.pdf">ARBAC02</a> DelegatedAdminMgr interface for
        performing policy administration of Fortress ARBAC entities that reside in LDAP directory.
    </li>
    <li><a href="DelegatedReviewMgrImpl.html">DelegatedReviewMgrImpl</a> - This implements using LDAP the <a
            href="http://profsandhu.com/journals/tissec/p113-oh.pdf">ARBAC02</a> DelegatedReviewMgr interface for
        performing policy interrogation of provisioned Fortress ARBAC02 entities that reside in LDAP directory.
    </li>
    <li><a href="PwPolicyMgrImpl.html">PwPolicyMgrImpl</a> - Performs CRUD on password policies stored in
        directory.
    </li>
    <li><a href="AuditMgrImpl.html">AuditMgrImpl</a> - Interrogates Fortress audit data stored in OpenLDAP.</li>
    <li><a href="ConfigMgrImpl.html">ConfigMgrImpl</a> - CRUD for Fortress config parameters.</li>
    <li><a href="GroupMgrImpl.html">GroupMgrImpl</a> - CRUD for LDAP group objects.</li>
</ol>
</body>
</html>
